package mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 一.使用 JDBC 连接 数据库 Mysql
 *  1.maven仓库下载对应mysql版本的jar包
 *  2.mysql服务器必须启动【WampServer集成】
 *  3.加载数据库驱动【mysql】
 *  4.获取数据库链接【mysql-用户名 root 最高权限，密码 空】
 * 二.链接成功
 */
public class MysqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //3.加载驱动【注册驱动程序】
        //JDBC 现在链接什么种类的数据库
        //Class.forName() 通过反射加载对应数据库版本驱动类
        //对应数据库固定注册写法：Mysql
        Class.forName("com.mysql.jdbc.Driver");
        //4.获取mysql数据库的链接
        String username="root";  //mysql数据库用户名
        String password="";   //mysql数据库密码
        // url链接地址：mysql固定结构
        // jdbc:mysql://ip地址：端口号/库名?characterEncoding=UFT-8
        String url="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8";
        //DriverManager  工具类，功能获取数据库连接：url、用户名和密码
        //getConnection 方法，链接不同版本数据库的方法
        Connection conn=DriverManager.getConnection(url,username,password);
        System.out.println("测试链接是否成功"+conn);


        //5.编写静态添加sql操作【字符串】
        //String sql="insert into person values(1,'王市委','黑龙江哈尔滨')";
        //练习:增加3条数据、删除一条数据、修改一条数据
        // String sql="delete from person where id=2";
        String sql="update person set name='书记' where id=1";


        //6.执行静态sql【增加操作】
        //conn.createStatement()执行数据库中增删改操作,返回Statement对象
        //Statement对象执行静态sql
        //6.1具备执行数据库中增删改操作
        Statement st=conn.createStatement();
        //6.2执行静态sql:增删改查操作
        // int类型帮助记录成功条数
        int rows=st.executeUpdate(sql);
        System.out.println("增加"+rows+"记录");
        //7.关闭资源
        st.close(); conn.close();
    }
    /**
     * 昨天重点
     *1.JDBC规范  链接各种数据库  数据库闭源
     *2.maven仓库下载对应jar包--- Java
     * mysql版本 5.5 mysqljdbc
     * oracle版本 10g ojdbc8
     *3.编程步骤 -- JDBC规范
     * 3.1加载驱动,jdbc链接数据库,每个数据库都有自己驱动
     * Class.forName("com.mysql.jdbc.Driver")反射技术【固定年
     *Mysql版本5.X      驱动:com.mysql.jdbc.Driven
     *Mysql版本8.X      驱动:com.mysql.cj.jdbc.Driver
     *Java -- >JDBC标准规范 -- >Driver接口:驱动接口,各种数据库
     * JDBC承认写对应驱动接口【所有数据库承认接口,确定什么数据库】
     *3.2获取链接,Mysql数据库:用户名、密码、Url用字符串接收
     * String username="root"; --Java写法
     * String password="";
     * url --- >Mysql链接路径 --- 固定结构
     * jdbc:mysql://localhost:3306/mi?characterEncoding=UTF-8
     * 协议:子协议://IP地址:端口号/库名?设置字符集
     *           本机
     *           127.0.0.1
     *Java获取链接--通过DriverManager接口：工具类，可以连接各种数据库
     * *   Connection con=DriverManager. getConnection(url, username,password);
     *      具体链接方案给方法：getConnectionO地址、用户名、密码确定无误
     *      返回一个对象Connection对象【Java与对应数据库链接成功】
     *打印Connection对象 -- 打印对象 --- 链接成功
     *4.执行sql:JDBC只能做CRUD增删改查 -- Mysql创建表、库
     *4.1 Mysql --- >使用库 --- >创建表
     *4.2 Java --->CUD增改删操作
     *4.3 Java --->确定数据库链接成功[con]--->调取执行·增删改查操作
     *         --->返回Statement对象:执行静态
     *代码:Statement st=con.createStatement(J
     * 4.4 Java  --->Statement对象提供方法:executeUpdate();
     *           --->此方法执行sql:增、删、改操作--- 成功 几 条记录
     *代码:int rows=st.executeUpdate(sql);
     * 打桩:打印成功多少条记录
     * 5.关闭资源【倒置法:Statement-执行sql对象、Connection -- 链接数据库成功对象】
     *
     *
     */
}
